# -*- Mode: shell-script -*-
#############################################################################
##
#A  imf0.grp                    GAP group library              Volkmar Felsch
##
##
#Y  Copyright (C) 2018-2021, Carnegie Mellon University
#Y  All rights reserved.  See LICENSE for details.
#Y  
#Y  This work is based on GAP version 3, with some files from version 4.  GAP is
#Y  Copyright (C) (1987--2021) by the GAP Group (www.gap-system.org).
##
##  This is the main secondary file of the GAP library of irreducible maximal
##  finite (imf) integral matrix groups. It contains a list IMFList of length
##  24 and a record IMFRec.
##
##  Each entry IMFList[dim] of IMFList is a record which contains information
##  about the  Z-class  representative groups  (in case  dim < 12  or  dim in
##  {13,17,19,23}, or about the Q-class representative groups (in case dim in
##  {12,14,15,16,18,20,21,22,24})  of diminsion dim.  More precisely, each of
##  these records contains the following components:
##
##  IMFList[dim].size               the group size,
##  IMFList[dim].isomorphismType    the isomorphism type,
##  IMFList[dim].isSolvable         true, if the group is solvable, or false,
##                                  else,
##  IMFList[dim].elementaryDivisors the elementary divisors  of the quadratic
##                                  form,
##  IMFList[dim].minimalNorm        the norm of the "short vectors",
##  IMFList[dim].orbitReps          representatives  of the  orbits  of short
##                                  vectors,
##  IMFList[dim].degrees            sizes  of the  orbits  of  short vectors,
##                                  i. e.,   the   degrees   of   permutation
##                                  representations  on  the  orbits  of  the
##                                  short vectors.
##
##  Additional lists with the associated  Gram matrices and matrix generators
##  are provided in the files  imf1to9.grp to  imf24.grp  of this library and
##  will be loaded only if necessary.
##
##  The record IMFRec contains the following components:
##
##  IMREC.maximalDimension the  maximal dimension  covered  by  the  library,
##                         i.e., 24,
##  IMREC.numberQQClasses  a list  containing  for  each  dimension  dim  the
##                         number of Q-classes of imf subgroups of GL(dim,Q),
##  IMREC.numberQClasses   a list  containing  for  each  dimension  dim  the
##                         number of  Q-classes of imf subgroups of dimension
##                         dim available in the library, i. e., the number of
##                         Q-classes of imf subgroups of GL(dim,Z), if dim is
##                         at most 11 or a prime,  or the number of Q-classes
##                         of imf subgroups of GL(dim,Q), else,
##  IMREC.repsAreZReps     a list  containing  for each dimension dim  a flag
##                         which is true, if dim is at most 11 or a prime, or
##                         false, else,
##  IMREC.bNumbers         a list containing for each dimension dim a list of
##                         lists which, for each available Q-class,  give the
##                         list    of   the    position   numbers    of   its
##                         representatives  with  respect  to  the  lists  in
##                         IMFList,
##  IMREC.maximalQClasses  a list containing for each dimension dim a list of
##                         lists which, for each available Q-class,  give the
##                         Q-class number  of the corresponding  rational imf
##                         class.
##
##

#############################################################################
##
##
IMFRec := rec( );

IMFRec.maximalDimension := 24;

IMFRec.numberQQClasses :=
 [1,2,1,3,2,6,2,9,2,8,2,19,4,12,6,31,3,17,2,31,8,12,4,65];

IMFRec.numberQClasses :=
 [1,2,1,5,2,9,3,16,8,21,2,19,4,12,6,31,6,17,2,31,8,12,7,65];

IMFRec.repsAreZReps :=
 [true,true,true,true,true,true,true,true,true,true,true,false,true,
  false,false,false,true,false,true,false,false,false,true,false];

IMFRec.bNumbers := [
 [[1]],
 [[1],[2]],
 [[1..3]],
 [[2],[3],[5,6],[1],[4]],
 [[1..3],[4..7]],
 [[1..3],[7],[8,9],[12,13],[14],[15..17],[4,5],[6],[10,11]],
 [[1..3],[6,7],[4,5]],
 [[1..3],[4],[5],[6],[7],[14,15],[16],[18,19],[23..26],[11,12],[20,21],[22],
  [8,9],[10],[13],[17]],
 [[1..3],[15..18],[4..7],[8,9],[10,11],[12,13],[14],[19,20]],
 [[1..3],[14..19],[25],[32,33],[38..41],[42,43],[44,45],[46],[4],[5],[6,7],
  [8,9],[10,11],[12,13],[20..22],[23,24],[26,27],[28],[29,30],[31],[34..37]],
 [[1..3],[4..9]],
 [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],
  [17],[18],[19]],
 [[1..3],[4..7],[8..13],[14..17]],
 [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]],
 [[1],[2],[3],[4],[5],[6]],
 [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],
  [17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],
  [31]],
 [[1..3],[4..9],[17..24],[10,11],[12,13],[14..16]],
 [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],
  [17]],
 [[1..3],[4..9]],
 [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],
  [17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],
  [31]],
 [[1],[2],[3],[4],[5],[6],[7],[8]],
 [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]],
 [[1..8],[9..11],[22..24],[25..28],[16..21],[12,13],[14,15]],
 [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],
  [17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28],[29],[30],[31],
  [32],[33],[34],[35],[36],[37],[38],[39],[40],[41],[42],[43],[44],[45],[46],
  [47],[48],[49],[50],[51],[52],[53],[54],[55],[56],[57],[58],[59],[60],[61],
  [62],[63],[64],[65]]];

IMFRec.maximalQClasses := [
 [1],
 [1,2],
 [1],
 [1,2,3,1,2],
 [1,2],
 [1,2,3,4,5,6,1,1,2],
 [1,2,2],
 [1,2,3,4,5,6,7,8,9,3,4,4,5,5,5,6],
 [1,2,1,1,1,1,1,2],
 [1,2,3,4,5,6,7,8,1,1,1,1,1,1,2,2,3,3,3,4,4],
 [1,2],
 [1..19],
 [1..4],
 [1..12],
 [1..6],
 [1..31],
 [1,2,3,1,1,2],
 [1..17],
 [1,2],
 [1..31],
 [1..8],
 [1..12],
 [1,2,3,4,1,2,2],
 [1..65]];


#############################################################################
##
#F  InfoImf1( <arg> )  . . . . . . . . . . . . . . . . .  package information
#F  InfoImf2( <arg> )  . . . . . . . . . . . . . .  package debug information
##
if not IsBound( InfoImf1 )  then InfoImf1 := Print;   fi;
if not IsBound( InfoImf2 )  then InfoImf2 := Ignore;  fi;


IMFList := [ ];
for I_ in [ 1 .. 24 ] do
    IMFList[I_] := rec( );
od;


#############################################################################
##
##  Sizes  of the  class  representatives  of the  irreducible maximal finite
##  integral matrix groups.
##

IMFList[1].size := [ # Z-classes of dimension 1
 2];

IMFList[2].size := [ # Z-classes of dimension 2
 8,
 12];

IMFList[3].size := [ # Z-classes of dimension 3
 48,
 48,
 48];

IMFList[4].size := [ # Z-classes of dimension 4
 384,
 1152,
 288,
 144,
 240,
 240];

IMFList[5].size := [ # Z-classes of dimension 5
 3840,
 3840,
 3840,
 1440,
 1440,
 1440,
 1440];

IMFList[6].size := [ # Z-classes of dimension 6
 46080,
 46080,
 46080,
 4608,
 4608,
 23040,
 10368,
 103680,
 103680,
 288,
 288,
 10080,
 10080,
 672,
 240,
 240,
 240];

IMFList[7].size := [ # Z-classes of dimension 7
 645120,
 645120,
 645120,
 80640,
 80640,
 2903040,
 2903040];

IMFList[8].size := [ # Z-classes of dimension 8
 10321920,
 10321920,
 10321920,
 2654208,
 696729600,
 6912,
 497664,
 62208,
 62208,
 41472,
 725760,
 725760,
 2592,
 115200,
 115200,
 28800,
 57600,
 1440,
 1440,
 1152,
 1152,
 3456,
 672,
 672,
 672,
 672];

IMFList[9].size := [ # Z-classes of dimension 9
 185794560,
 185794560,
 185794560,
 663552,
 663552,
 663552,
 663552,
 36864,
 36864,
 2304,
 2304,
 165888,
 165888,
 1152,
 7257600,
 7257600,
 7257600,
 7257600,
 1440,
 1440];

IMFList[10].size := [ # Z-classes of dimension 10
 3715891200,
 3715891200,
 3715891200,
 1857945600,
 737280,
 29491200,
 29491200,
 122880,
 122880,
 7680,
 7680,
 23040,
 23040,
 4147200,
 4147200,
 4147200,
 4147200,
 4147200,
 4147200,
 2073600,
 2073600,
 2073600,
 480,
 480,
 29859840,
 1866240,
 1866240,
 38880,
 23040,
 23040,
 103680,
 311040,
 311040,
 8640,
 8640,
 8640,
 8640,
 1440,
 1440,
 1440,
 1440,
 79833600,
 79833600,
 2640,
 2640,
 2640];

IMFList[11].size := [ # Z-classes of dimension 11
 81749606400,
 81749606400,
 81749606400,
 958003200,
 958003200,
 958003200,
 958003200,
 958003200,
 958003200];

IMFList[12].size := [ # Q-classes of dimension 12
 1961990553600,
 9172942848,
 21499084800,
 2149908480,
 78382080,
 31104,
 115200,
 82944000,
 2400,
 2880,
 1440,
 8640,
 203212800,
 903168,
 2688,
 2688,
 60480,
 4032,
 12454041600];

IMFList[13].size := [ # Z-classes of dimension 13
 51011754393600,
 51011754393600,
 51011754393600,
 174356582400,
 174356582400,
 174356582400,
 174356582400,
 22464,
 22464,
 22464,
 22464,
 22464,
 22464,
 31200,
 31200,
 31200,
 31200];

IMFList[14].size := [ # Q-classes of dimension 14
 1428329123020800,
 16855282483200,
 180592312320,
 8491392,
 48384,
 17418240,
 2615348736000,
 10080,
 80640,
 4368,
 2184,
 4368];

IMFList[15].size := [ # Q-classes of dimension 15
 42849873690624000,
 41845579776000,
 103680,
 2903040,
 17915904000,
 10080];

IMFList[16].size := [ # Q-classes of dimension 16
 1371195958099968000,
 970864271032320000,
 42268920643584,
 89181388800,
 17336861982720,
 1036800,
 4180377600,
 95551488,
 3732480,
 79626240000,
 288000,
 57600,
 1658880000,
 3628800,
 138240,
 230400,
 4147200,
 172800,
 86400,
 2880,
 17280,
 960,
 4032,
 4032,
 60480,
 4032,
 903168,
 240,
 240,
 711374856192000,
 9792];

IMFList[17].size := [ # Z-classes of dimension 17
 46620662575398912000,
 46620662575398912000,
 46620662575398912000,
 12804747411456000,
 12804747411456000,
 12804747411456000,
 12804747411456000,
 12804747411456000,
 12804747411456000,
 17825792,
 17825792,
 69632,
 69632,
 4896,
 4896,
 4896,
 32640,
 32640,
 32640,
 32640,
 32640,
 32640,
 32640,
 32640];

IMFList[18].size := [ # Q-classes of dimension 18
 1678343852714360832000,
 3916800,
 6687075336192000,
 50388480,
 1872381094133760,
 82944000,
 105345515520000,
 28800,
 8640,
 43545600,
 6145155072000,
 1820786688,
 225792,
 9792,
 4896,
 243290200817664000,
 13680];

IMFList[19].size := [ # Z-classes of dimension 19
 63777066403145711616000,
 63777066403145711616000,
 63777066403145711616000,
 4865804016353280000,
 4865804016353280000,
 4865804016353280000,
 4865804016353280000,
 4865804016353280000,
 4865804016353280000];

IMFList[20].size := [ # Q-classes of dimension 20
 2551082656125828464640000,
 243468982907043840,
 656916480,
 380160,
 11520,
 224685731296051200,
 193491763200,
 103195607040000,
 829440,
 103680,
 4147200,
 311040,
 95551488000000,
 120000,
 172800,
 161280,
 1774080,
 10080,
 102181884343418880000,
 483840,
 80640,
 12746807377920000,
 15840,
 13939200,
 13939200,
 15840,
 31680,
 479001600,
 15840,
 15840,
 13680];

IMFList[21].size := [ # Q-classes of dimension 21
 107145471557284795514880000,
 146794677780086784000,
 2903040,
 52254720,
 2903040,
 1512000,
 10080,
 2248001455555215360000];

IMFList[22].size := [ # Q-classes of dimension 22
 4714400748520531002654720000,
 110361968640,
 29658516531078758400,
 1835540262420480000,
 5748019200,
 177408000,
 3592512000,
 51704033477769953280000,
 12144,
 12144,
 24288,
 24288];

IMFList[23].size := [ # Z-classes of dimension 23
 1240896803466478878720000,
 1240896803466478878720000,
 1240896803466478878720000,
 1240896803466478878720000,
 1240896803466478878720000,
 1240896803466478878720000,
 1240896803466478878720000,
 1240896803466478878720000,
 216862434431944426122117120000,
 216862434431944426122117120000,
 216862434431944426122117120000,
 85571854663680,
 85571854663680,
 41783132160,
 41783132160,
 489646080,
 489646080,
 489646080,
 489646080,
 489646080,
 489646080,
 84610842624000,
 84610842624000,
 84610842624000,
 991533312000,
 991533312000,
 991533312000,
 991533312000];

IMFList[24].size := [ # Q-classes of dimension 24
 10409396852733332453861621760000,
 2029289625631919702016000000,
 8315553613086720000,
 1728000,
 1682857609853487022080,
 940584960,
 2773263883425546240000,
 103680,
 67184640,
 4270826380475341209600,
 12287500930252800,
 59719680,
 1934917632,
 34560,
 1981355655168,
 1935360,
 1161216,
 31022420086661971968000000,
 137594142720000000,
 79626240000,
 143327232000000,
 145152000,
 11520000,
 16588800,
 230400,
 1728000,
 138240,
 311040,
 4147200,
 149299200,
 17280,
 247772652503040000,
 387072,
 4894274617344,
 387072,
 14450688,
 5806080,
 14450688,
 387072,
 52416,
 112896,
 30240,
 103680,
 5760,
 34560,
 7315660800,
 32514048,
 16128,
 16128,
 310206304349061120000,
 134784,
 74724249600,
 1872,
 12441600,
 17915904000,
 86400,
 14400,
 103680,
 8064,
 5376,
 1820786688,
 1209600,
 80640,
 31680,
 2640];


#############################################################################
##
##  Elementary  divisors  of the  quadratic  forms  associated  to the  class
##  representatives of the irreducible maximal finite integral matrix groups,
##  given in form of lists [ d1, exp1, d2, exp2, ... ].
##

IMFList[1].elementaryDivisors := [ # Z-classes of dimension 1
 [1,1]];

IMFList[2].elementaryDivisors := [ # Z-classes of dimension 2
 [1,2],
 [1,1,3,1]];

IMFList[3].elementaryDivisors := [ # Z-classes of dimension 3
 [1,3],
 [1,1,4,2],
 [1,2,4,1]];

IMFList[4].elementaryDivisors := [ # Z-classes of dimension 4
 [1,4],
 [1,2,2,2],
 [1,2,3,2],
 [1,1,3,2,9,1],
 [1,3,5,1],
 [1,1,5,3]];

IMFList[5].elementaryDivisors := [ # Z-classes of dimension 5
 [1,5],
 [1,4,4,1],
 [1,1,4,4],
 [1,1,6,4],
 [1,4,6,1],
 [1,1,3,3,6,1],
 [1,1,2,3,6,1]];

IMFList[6].elementaryDivisors := [ # Z-classes of dimension 6
 [1,6],
 [1,4,2,2],
 [1,2,2,4],
 [1,4,4,2],
 [1,2,4,4],
 [1,1,2,4,4,1],
 [1,3,3,3],
 [1,5,3,1],
 [1,1,3,5],
 [1,3,3,1,12,2],
 [1,2,4,1,12,3],
 [1,1,7,5],
 [1,5,7,1],
 [1,3,7,3],
 [1,3,5,3],
 [1,3,5,1,10,2],
 [1,2,2,1,10,3]];

IMFList[7].elementaryDivisors := [ # Z-classes of dimension 7
 [1,7],
 [1,6,4,1],
 [1,1,4,6],
 [1,1,8,6],
 [1,6,8,1],
 [1,6,2,1],
 [1,1,2,6]];

IMFList[8].elementaryDivisors := [ # Z-classes of dimension 8
 [1,8],
 [1,6,2,2],
 [1,2,2,6],
 [1,4,2,4],
 [1,8],
 [1,4,6,4],
 [1,4,3,4],
 [1,3,3,4,9,1],
 [1,1,3,4,9,3],
 [1,2,3,4,9,2],
 [1,7,9,1],
 [1,1,9,7],
 [1,1,3,3,9,3,27,1],
 [1,6,5,2],
 [1,2,5,6],
 [1,4,5,4],
 [1,1,5,6,25,1],
 [1,2,5,2,15,4],
 [1,4,3,2,15,2],
 [1,2,2,2,6,4],
 [1,4,3,2,6,2],
 [1,2,2,2,6,2,12,2],
 [1,1,3,4,21,3],
 [1,3,7,4,21,1],
 [1,5,7,2,21,1],
 [1,1,3,2,21,5]];

IMFList[9].elementaryDivisors := [ # Z-classes of dimension 9
 [1,9],
 [1,8,4,1],
 [1,1,4,8],
 [1,6,4,3],
 [1,3,4,6],
 [1,7,4,2],
 [1,2,4,7],
 [1,5,4,4],
 [1,4,4,5],
 [1,4,4,4,16,1],
 [1,1,4,4,16,4],
 [1,2,4,6,16,1],
 [1,1,4,6,16,2],
 [1,2,4,5,16,2],
 [1,1,10,8],
 [1,8,10,1],
 [1,1,5,7,10,1],
 [1,1,2,7,10,1],
 [1,1,5,3,10,1,20,4],
 [1,4,2,1,4,3,20,1]];

IMFList[10].elementaryDivisors := [ # Z-classes of dimension 10
 [1,10],
 [1,8,2,2],
 [1,2,2,8],
 [1,1,2,8,4,1],
 [1,4,2,2,4,4],
 [1,8,4,2],
 [1,2,4,8],
 [1,6,4,4],
 [1,4,4,6],
 [1,4,4,4,8,2],
 [1,2,2,4,8,4],
 [1,4,2,1,4,4,8,1],
 [1,1,2,4,4,1,8,4],
 [1,8,3,2],
 [1,2,3,8],
 [1,8,6,2],
 [1,2,6,8],
 [1,2,2,6,6,2],
 [1,2,3,6,6,2],
 [1,1,3,8,9,1],
 [1,1,3,7,6,1,18,1],
 [1,1,3,1,6,7,18,1],
 [1,4,2,2,4,2,12,2],
 [1,2,3,2,6,2,12,4],
 [1,5,3,5],
 [1,4,3,5,9,1],
 [1,1,3,5,9,4],
 [1,1,3,4,9,4,27,1],
 [1,5,3,3,12,2],
 [1,2,4,3,12,5],
 [1,5,3,5],
 [1,5,3,3,6,2],
 [1,2,2,3,6,5],
 [1,4,3,4,6,1,18,1],
 [1,1,3,1,6,4,18,4],
 [1,2,2,2,6,5,18,1],
 [1,1,3,5,9,2,18,2],
 [1,6,6,4],
 [1,4,6,6],
 [1,4,2,2,6,4],
 [1,4,3,2,6,4],
 [1,9,11,1],
 [1,1,11,9],
 [1,7,11,3],
 [1,3,11,7],
 [1,5,11,5]];

IMFList[11].elementaryDivisors := [ # Z-classes of dimension 11
 [1,11],
 [1,10,4,1],
 [1,1,4,10],
 [1,1,12,10],
 [1,1,3,10],
 [1,1,4,9,12,1],
 [1,1,3,9,12,1],
 [1,10,3,1],
 [1,10,12,1]];

IMFList[12].elementaryDivisors := [ # Q-classes of dimension 12
 [1,12],
 [1,6,2,6],
 [1,10,3,2],
 [1,6,3,6],
 [1,6,3,6],
 [1,6,2,2,6,4],
 [1,6,5,6],
 [1,9,5,3],
 [1,8,2,1,10,3],
 [1,8,5,2,10,2],
 [1,6,15,6],
 [1,6,15,6],
 [1,10,7,2],
 [1,6,7,6],
 [1,6,2,4,14,2],
 [1,6,14,6],
 [1,6,3,4,21,2],
 [1,6,21,6],
 [1,11,13,1]];

IMFList[13].elementaryDivisors := [ # Z-classes of dimension 13
 [1,13],
 [1,12,4,1],
 [1,1,4,12],
 [1,1,14,12],
 [1,12,14,1],
 [1,1,7,11,14,1],
 [1,1,2,11,14,1],
 [1,6,3,7],
 [1,7,3,6],
 [1,7,3,5,12,1],
 [1,6,3,6,12,1],
 [1,1,4,5,12,7],
 [1,1,4,6,12,6],
 [1,1,2,8,10,4],
 [1,9,5,3,10,1],
 [1,1,2,3,10,9],
 [1,4,5,8,10,1]];

IMFList[14].elementaryDivisors := [ # Q-classes of dimension 14
 [1,14],
 [1,12,2,2],
 [1,7,3,7],
 [1,7,3,7],
 [1,8,2,4,6,2],
 [1,7,3,5,6,2],
 [1,13,15,1],
 [1,8,5,5,15,1],
 [1,8,2,5,30,1],
 [1,7,13,7],
 [1,7,3,4,39,3],
 [1,9,13,4,39,1]];

IMFList[15].elementaryDivisors := [ # Q-classes of dimension 15
 [1,15],
 [1,14,16,1],
 [1,10,3,5],
 [1,9,2,5,6,1],
 [1,12,6,3],
 [1,10,7,5]];

IMFList[16].elementaryDivisors := [ # Q-classes of dimension 16
 [1,16],
 [1,16],
 [1,8,2,8],
 [1,8,2,8],
 [1,8,3,8],
 [1,8,3,8],
 [1,8,3,8],
 [1,8,6,8],
 [1,8,6,8],
 [1,12,5,4],
 [1,4,5,12],
 [1,10,5,6],
 [1,8,5,8],
 [1,8,5,8],
 [1,8,2,4,10,4],
 [1,8,10,8],
 [1,8,3,4,15,4],
 [1,8,15,8],
 [1,8,15,8],
 [1,8,15,8],
 [1,8,30,8],
 [1,8,6,4,30,4],
 [1,8,3,4,21,4],
 [1,8,3,2,21,6],
 [1,8,21,8],
 [1,8,21,8],
 [1,10,7,4,21,2],
 [1,12,11,4],
 [1,12,55,4],
 [1,15,17,1],
 [1,11,17,5]];

IMFList[17].elementaryDivisors := [ # Z-classes of dimension 17
 [1,17],
 [1,16,4,1],
 [1,1,4,16],
 [1,1,18,16],
 [1,16,18,1],
 [1,1,9,15,18,1],
 [1,1,2,15,18,1],
 [1,16,2,1],
 [1,1,2,16],
 [1,9,4,8],
 [1,8,4,9],
 [1,1,4,8,16,8],
 [1,8,4,8,16,1],
 [1,1,9,7,18,1,36,8],
 [1,8,2,1,4,8],
 [1,8,2,1,4,7,36,1],
 [1,1,3,8,6,8],
 [1,9,2,7,6,1],
 [1,8,2,8,12,1],
 [1,8,2,8,6,1],
 [1,1,2,8,4,7,12,1],
 [1,1,3,7,6,9],
 [1,1,6,8,12,8],
 [1,1,3,7,6,8,12,1]];

IMFList[18].elementaryDivisors := [ # Q-classes of dimension 18
 [1,18],
 [1,10,2,8],
 [1,15,3,3],
 [1,13,3,5],
 [1,9,3,9],
 [1,9,5,9],
 [1,16,10,2],
 [1,9,5,1,10,8],
 [1,9,3,3,15,6],
 [1,9,3,7,30,2],
 [1,15,7,3],
 [1,9,7,9],
 [1,9,7,9],
 [1,9,17,9],
 [1,8,2,5,34,5],
 [1,17,19,1],
 [1,9,19,9]];

IMFList[19].elementaryDivisors := [ # Z-classes of dimension 19
 [1,19],
 [1,1,4,18],
 [1,18,4,1],
 [1,1,20,18],
 [1,18,20,1],
 [1,18,5,1],
 [1,1,5,17,20,1],
 [1,1,4,17,20,1],
 [1,1,5,18]];

IMFList[20].elementaryDivisors := [ # Q-classes of dimension 20
 [1,20],
 [1,10,2,10],
 [1,10,2,10],
 [1,10,2,10],
 [1,12,3,8],
 [1,10,3,10],
 [1,6,2,4,3,10],
 [1,16,6,4],
 [1,8,2,8,6,2,12,2],
 [1,14,6,5,54,1],
 [1,12,6,8],
 [1,10,3,2,6,8],
 [1,15,5,5],
 [1,17,5,3],
 [1,15,5,1,30,4],
 [1,10,7,10],
 [1,10,7,10],
 [1,10,7,10],
 [1,19,21,1],
 [1,18,2,1,42,1],
 [1,13,3,1,6,5,42,1],
 [1,18,11,2],
 [1,18,11,2],
 [1,14,11,6],
 [1,10,11,10],
 [1,10,11,10],
 [1,10,2,6,22,4],
 [1,10,3,8,33,2],
 [1,10,3,4,33,6],
 [1,10,33,10],
 [1,13,19,6,57,1]];

IMFList[21].elementaryDivisors := [ # Q-classes of dimension 21
 [1,21],
 [1,18,2,3],
 [1,15,2,6],
 [1,19,3,2],
 [1,14,6,6,12,1],
 [1,1,2,1,10,19],
 [1,13,5,2,15,5,30,1],
 [1,20,22,1]];

IMFList[22].elementaryDivisors := [ # Q-classes of dimension 22
 [1,22],
 [1,1,3,19,6,2],
 [1,11,3,11],
 [1,20,12,2],
 [1,10,3,10,12,1,36,1],
 [1,21,5,1],
 [1,1,5,20,15,1],
 [1,21,23,1],
 [1,19,23,3],
 [1,17,23,5],
 [1,15,23,7],
 [1,11,23,11]];

IMFList[23].elementaryDivisors := [ # Z-classes of dimension 23
 [1,1,24,22],
 [1,22,24,1],
 [1,22,6,1],
 [1,1,3,21,24,1],
 [1,1,2,21,6,1],
 [1,1,3,21,6,1],
 [1,1,8,21,24,1],
 [1,1,6,22],
 [1,23],
 [1,22,4,1],
 [1,1,4,22],
 [1,1,2,22],
 [1,22,2,1],
 [1,1,8,22],
 [1,22,8,1],
 [1,1,12,22],
 [1,22,12,1],
 [1,1,3,21,12,1],
 [1,22,3,1],
 [1,1,3,22],
 [1,1,4,21,12,1],
 [1,23],
 [1,22,4,1],
 [1,1,4,22],
 [1,1,2,21,6,1],
 [1,22,6,1],
 [1,1,3,21,6,1],
 [1,1,6,22]];

IMFList[24].elementaryDivisors := [ # Q-classes of dimension 24
 [1,24],
 [1,24],
 [1,24],
 [1,16,2,8],
 [1,12,2,12],
 [1,12,2,12],
 [1,20,3,4],
 [1,20,3,4],
 [1,16,3,8],
 [1,12,3,12],
 [1,12,3,12],
 [1,12,2,8,6,4],
 [1,12,2,4,6,8],
 [1,12,2,4,6,8],
 [1,12,6,12],
 [1,12,6,12],
 [1,12,6,12],
 [1,23,25,1],
 [1,18,5,6],
 [1,12,5,12],
 [1,12,5,12],
 [1,12,5,12],
 [1,16,2,2,10,6],
 [1,16,5,4,10,4],
 [1,16,10,8],
 [1,12,5,4,10,8],
 [1,12,10,12],
 [1,12,5,4,15,8],
 [1,12,15,12],
 [1,12,15,12],
 [1,12,3,4,15,4,30,4],
 [1,20,7,4],
 [1,20,7,4],
 [1,12,7,12],
 [1,12,7,12],
 [1,12,2,8,14,4],
 [1,12,2,8,14,4],
 [1,12,14,12],
 [1,12,14,12],
 [1,12,13,12],
 [1,18,2,6],
 [1,12,2,12],
 [1,12,10,12],
 [1,12,15,4,30,8],
 [1,12,30,12],
 [1,12,3,8,21,4],
 [1,12,21,12],
 [1,12,6,8,42,4],
 [1,12,42,12],
 [1,22,13,2],
 [1,22,13,2],
 [1,12,3,10,39,2],
 [1,12,3,10,39,2],
 [1,18,5,2,15,4],
 [1,12,3,6,15,6],
 [1,12,3,6,15,6],
 [1,12,3,4,6,2,30,6],
 [1,14,3,2,6,7,30,1],
 [1,20,7,4],
 [1,18,2,2,14,4],
 [1,15,7,6,21,3],
 [1,18,5,2,35,4],
 [1,12,7,6,35,6],
 [1,12,22,12],
 [1,16,11,7,55,1]];


#############################################################################
##
##  Solvability  of  the  class  representatives  of the  irreducible maximal
##  finite integral matrix groups.
##

IMFList[1].isSolvable := [ # Z-classes of dimension 1
 true];

IMFList[2].isSolvable := [ # Z-classes of dimension 2
 true,
 true];

IMFList[3].isSolvable := [ # Z-classes of dimension 3
 true,
 true,
 true];

IMFList[4].isSolvable := [ # Z-classes of dimension 4
 true,
 true,
 true,
 true,
 false,
 false];

IMFList[5].isSolvable := [ # Z-classes of dimension 5
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[6].isSolvable := [ # Z-classes of dimension 6
 false,
 false,
 false,
 true,
 true,
 false,
 true,
 false,
 false,
 true,
 true,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[7].isSolvable := [ # Z-classes of dimension 7
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[8].isSolvable := [ # Z-classes of dimension 8
 false,
 false,
 false,
 true,
 false,
 true,
 true,
 true,
 true,
 true,
 false,
 false,
 true,
 false,
 false,
 false,
 false,
 false,
 false,
 true,
 true,
 true,
 false,
 false,
 false,
 false];

IMFList[9].isSolvable := [ # Z-classes of dimension 9
 false,
 false,
 false,
 true,
 true,
 true,
 true,
 true,
 true,
 true,
 true,
 true,
 true,
 true,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[10].isSolvable := [ # Z-classes of dimension 10
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[11].isSolvable := [ # Z-classes of dimension 11
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[12].isSolvable := [ # Q-classes of dimension 12
 false,
 true,
 false,
 false,
 false,
 true,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[13].isSolvable := [ # Z-classes of dimension 13
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[14].isSolvable := [ # Q-classes of dimension 14
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[15].isSolvable := [ # Q-classes of dimension 15
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[16].isSolvable := [ # Q-classes of dimension 16
 false,
 false,
 true,
 false,
 false,
 false,
 false,
 true,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 true,
 false,
 false,
 false,
 false,
 false,
 true,
 true,
 false,
 false];

IMFList[17].isSolvable := [ # Z-classes of dimension 17
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 true,
 true,
 true,
 true,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[18].isSolvable := [ # Q-classes of dimension 18
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[19].isSolvable := [ # Z-classes of dimension 19
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[20].isSolvable := [ # Q-classes of dimension 20
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[21].isSolvable := [ # Q-classes of dimension 21
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[22].isSolvable := [ # Q-classes of dimension 22
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[23].isSolvable := [ # Z-classes of dimension 23
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];

IMFList[24].isSolvable := [ # Q-classes of dimension 24
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 true,
 false,
 true,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 true,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false,
 false];


#############################################################################
##
##  Descriptions of the isomorphism types of the class representatives of the
##  irreducible maximal finite integral matrix groups.
##

IMFList[1].isomorphismType := [ # Z-classes of dimension 1
 "C2"];

IMFList[2].isomorphismType := [ # Z-classes of dimension 2
 "C2 wr C2 = D8",
 "C2 x S3 = C2 x W(A2) = D12"];

IMFList[3].isomorphismType := [ # Z-classes of dimension 3
 "C2 wr S3 = C2 x S4 = W(B3)",
 "C2 wr S3 = C2 x S4 = C2 x W(A3)",
 "C2 wr S3 = C2 x S4 = C2 x W(A3)"];

IMFList[4].isomorphismType := [ # Z-classes of dimension 4
 "C2 wr S4 = W(B4)",
 "W(F4)",
 "D12 wr C2 = (C2 x W(A2)) wr C2",
 "(D12 Y D12):C2",
 "C2 x S5 = C2 x W(A4)",
 "C2 x S5 = C2 x W(A4)"];

IMFList[5].isomorphismType := [ # Z-classes of dimension 5
 "C2 wr S5 = W(B5)",
 "C2 wr S5 = C2 x W(D5)",
 "C2 wr S5 = C2 x W(D5)",
 "C2 x S6",
 "C2 x S6",
 "C2 x S6",
 "C2 x S6"];

IMFList[6].isomorphismType := [ # Z-classes of dimension 6
 "C2 wr S6 = W(B6)",
 "C2 wr S6 = C2 x W(D6)",
 "C2 wr S6 = C2 x W(D6)",
 "(C2 x S4) wr C2 = (C2 x W(A3)) wr C2",
 "(C2 x S4) wr C2 = (C2 x W(A3)) wr C2",
 "subgroup of index 2 of C2 wr S6",
 "(C2 x S3) wr S3 = (C2 x W(A2)) wr S3 = D12 wr S3",
 "C2 x W(E6)",
 "C2 x W(E6)",
 "C2 x S3 x S4 = D12 x S4 = C2 x W(A2) x W(A3)",
 "C2 x S3 x S4 = D12 x S4 = C2 x W(A2) x W(A3)",
 "C2 x S7 = C2 x W(A6)",
 "C2 x S7 = C2 x W(A6)",
 "C2 x PGL(2,7)",
 "C2 x S5",
 "C2 x S5",
 "C2 x S5"];

IMFList[7].isomorphismType := [ # Z-classes of dimension 7
 "C2 wr S7 = W(B7)",
 "C2 wr S7 = C2 x W(D7)",
 "C2 wr S7 = C2 x W(D7)",
 "C2 x S8 = C2 x W(A7)",
 "C2 x S8 = C2 x W(A7)",
 "W(E7)",
 "W(E7)"];

IMFList[8].isomorphismType := [ # Z-classes of dimension 8
 "C2 wr S8 = W(B8)",
 "C2 wr S8 = C2 x W(D8)",
 "C2 wr S8 = C2 x W(D8)",
 "W(F4) wr C2",
 "W(E8)",
 "S3 x W(F4) = W(A2) x W(F4)",
 "D12 wr S4 = (W(A2) x C2) wr S4",
 "C2 x (S3 wr S4)",
 "C2 x (S3 wr S4)",
 "(C2 x (S3 wr C2)) wr C2",
 "C2 x S9 = C2 x W(A8)",
 "C2 x S9 = C2 x W(A8)",
 "C2 x (S3 wr S3)",
 "(C2 x S5) wr C2",
 "(C2 x S5) wr C2",
 "(SL(2,5) Y SL(2,5)):(C2 x C2)",
 "C2 x (S5 wr C2)",
 "C2 x S5 x S3",
 "C2 x S5 x S3",
 "W(F4)",
 "W(F4)",
 "S3 subd W(F4) = (C3 x (SL(2,3) Y SL(2,3)):C2).C2",
 "C2 x PGL(2,7)",
 "C2 x PGL(2,7)",
 "C2 x PGL(2,7)",
 "C2 x PGL(2,7)"];

IMFList[9].isomorphismType := [ # Z-classes of dimension 9
 "C2 wr S9",
 "C2 wr S9",
 "C2 wr S9",
 "(C2 wr S3) wr S3",
 "(C2 wr S3) wr S3",
 "(C2 wr S3) wr S3",
 "(C2 wr S3) wr S3",
 "C2^9:(S3 wr C2)",
 "C2^9:(S3 wr C2)",
 "C2 x (S4 wr C2)",
 "C2 x (S4 wr C2)",
 "C2 x (S4 wr S3)",
 "C2 x (S4 wr S3)",
 "C2 x S4 x S4",
 "C2 x S10",
 "C2 x S10",
 "C2 x S10",
 "C2 x S10",
 "C2 x S6",
 "C2 x S6"];

IMFList[10].isomorphismType := [ # Z-classes of dimension 10
 "C2 wr S10",
 "C2 wr S10",
 "C2 wr S10",
 "C2^9:S10",
 "C2^10:S6",
 "C2^10:(S5 wr C2)",
 "C2^10:(S5 wr C2)",
 "C2^10:S5",
 "C2^10:S5",
 "C2^6:S5",
 "C2^6:S5",
 "C2^5:S6",
 "C2^5:S6",
 "(C2 x S6) wr C2",
 "(C2 x S6) wr C2",
 "(C2 x S6) wr C2",
 "(C2 x S6) wr C2",
 "(C2 x S6) wr C2",
 "(C2 x S6) wr C2",
 "C2 x (S6 wr C2)",
 "C2 x (S6 wr C2)",
 "C2 x (S6 wr C2)",
 "(C2^2 x A5):C2",
 "(C2^2 x A5):C2",
 "(C2 x S3) wr S5",
 "C2 x (S3 wr S5)",
 "C2 x (S3 wr S5)",
 "C2 x (C3^4:C2):S5",
 "S3 x (C2 wr S5)",
 "S3 x (C2 wr S5)",
 "C2 x SU(4,2):C2",
 "(C6 x SU(4,2)):C2",
 "(C6 x SU(4,2)):C2",
 "D12 x S6",
 "D12 x S6",
 "D12 x S6",
 "D12 x S6",
 "C2 x S6",
 "C2 x S6",
 "C2 x S6",
 "C2 x S6",
 "C2 x S11",
 "C2 x S11",
 "C2 x PGL(2,11)",
 "C2 x PGL(2,11)",
 "C2 x PGL(2,11)"];

IMFList[11].isomorphismType := [ # Z-classes of dimension 11
 "C2 wr S11 = W(B11)",
 "C2 wr S11 = C2 x W(D11)",
 "C2 wr S11 = C2 x W(D11)",
 "C2 x S12 = C2 x W(A11)",
 "C2 x S12 = C2 x W(A11)",
 "C2 x S12 = C2 x W(A11)",
 "C2 x S12 = C2 x W(A11)",
 "C2 x S12 = C2 x W(A11)",
 "C2 x S12 = C2 x W(A11)"];

IMFList[12].isomorphismType := [ # Q-classes of dimension 12
 "C2 wr S12 = W(B12)",
 "W(F4) wr S3",
 "(C2 x W(E6)) wr C2",
 "D12 wr S6 = (C2 x S3) wr S6 = (C2 x W(A2)) wr S6",
 "C6.PSU(4,3).(C2 x C2)",
 "((3+^(1+2):SL(2,3)) x SL(2,3)).C2",
 "(C2 x S5) wr C2",
 "(C2 x S5) wr S3 = (C2 x W(A4)) wr S3",
 "(C2 x D10 x A5):C2",
 "(SL(2,5) Y SL(2,3)).C2",
 "C2 x S3 x S5",
 "(C2 x C3.A6).(C2 x C2)",
 "(C2 x S7) wr C2 = (C2 x W(A6)) wr C2",
 "(C2 x PGL(2,7)) wr C2",
 "(PSL(2,7) x D8):C2",
 "(PSL(2,7) x D8):C2",
 "C2 x S3 x S7 = C2 x W(A2) x W(A6)",
 "C2 x S3 x PGL(2,7)",
 "C2 x S13 = C2 x W(A12)"];

IMFList[13].isomorphismType := [ # Z-classes of dimension 13
 "C2 wr S13 = W(B13)",
 "C2 wr S13 = C2 x W(D13)",
 "C2 wr S13 = C2 x W(D13)",
 "C2 x S14 = C2 x W(A13)",
 "C2 x S14 = C2 x W(A13)",
 "C2 x S14 = C2 x W(A13)",
 "C2 x S14 = C2 x W(A13)",
 "C2 x SL(3,3):C2",
 "C2 x SL(3,3):C2",
 "C2 x SL(3,3):C2",
 "C2 x SL(3,3):C2",
 "C2 x SL(3,3):C2",
 "C2 x SL(3,3):C2",
 "C2 x PSL(2,25):C2",
 "C2 x PSL(2,25):C2",
 "C2 x PSL(2,25):C2",
 "C2 x PSL(2,25):C2"];

IMFList[14].isomorphismType := [ # Q-classes of dimension 14
 "C2 wr S14 = W(B14)",
 "W(E7) wr C2",
 "(C2 x S3) wr S7 = D12 wr S7 = (C2 x W(A2)) wr S7",
 "C2 x G(2,3)",
 "(SU(3,3) x C4).C2",
 "S3 x W(E7) = W(A2) x W(E7)",
 "C2 x S15 = C2 x W(A14)",
 "C2 x S7",
 "C2 x S8",
 "C2 x PGL(2,13)",
 "C2 x PSL(2,13)",
 "C2 x PGL(2,13)"];

IMFList[15].isomorphismType := [ # Q-classes of dimension 15
 "C2 wr S15 = W(B15)",
 "C2 x S16 = C2 x W(A15)",
 "C2 x W(E6)",
 "C2 x Sp(6,2)",
 "(C2 x S6) wr S3 = (C2 x W(A5)) wr S3",
 "C2 x S7"];

IMFList[16].isomorphismType := [ # Q-classes of dimension 16
 "C2 wr S16 = W(B16)",
 "W(E8) wr C2",
 "W(F4) wr S4",
 "2+^(1+8).O+(8,2)",
 "(C2 x S3) wr S8 = (C2 x W(A2)) wr S8",
 "(SL(2,9) Y SL(2,9)).(C2 x C2)",
 "W(E8) x W(A2)",
 "(S3 x W(F4)) wr C2 = (W(A2) x W(F4)) wr C2",
 "((Sp(4,3) x C3) Y SL(2,3)).C2",
 "(C2 x S5) wr S4 = (C2 x W(A4)) wr S4",
 "(((SL(2,5) Y SL(2,5)):C2) x D10):C2",
 "C2 x (S5 x S5):C2",
 "((SL(2,5) Y SL(2,5)):(C2 x C2)) wr C2",
 "C2.A10",
 "S5 x W(F4)",
 "(SL(2,5) Y (D8 Y Q8).A5).C2",
 "(C2 x S3 x S5) wr C2",
 "S3 x (SL(2,5) Y SL(2,5)):(C2 x C2)",
 "(SL(2,5) Y SL(2,9)):C2",
 "(C2 x A6).(C2 x C2)",
 "(SL(2,5) Y ((SL(2,3) x C3).C2)).C2",
 "D120.(C4 x C2)",
 "(SL(2,7) Y C2.S3).C2",
 "C2 x S3 x PGL(2,7)",
 "(C2.A7 Y C2.S3).C2",
 "(SL(2,7) Y C2.S3).C2",
 "(C2 x PGL(2,7)) wr C2",
 "D120.C2",
 "D120.C2",
 "C2 x S17 = C2 x W(A16)",
 "C2 x PGL(2,17)"];

IMFList[17].isomorphismType := [ # Z-classes of dimension 17
 "C2 wr S17",
 "C2 wr S17",
 "C2 wr S17",
 "C2 x S18",
 "C2 x S18",
 "C2 x S18",
 "C2 x S18",
 "C2 x S18",
 "C2 x S18",
 "C2^17:(C17:C8)",
 "C2^17:(C17:C8)",
 "C2^9:(C17:C8)",
 "C2^9:(C17:C8)",
 "C2 x PSL(2,17)",
 "C2 x PSL(2,17)",
 "C2 x PSL(2,17)",
 "C2 x SL(2,16):C4",
 "C2 x SL(2,16):C4",
 "C2 x SL(2,16):C4",
 "C2 x SL(2,16):C4",
 "C2 x SL(2,16):C4",
 "C2 x SL(2,16):C4",
 "C2 x SL(2,16):C4",
 "C2 x SL(2,16):C4"];

IMFList[18].isomorphismType := [ # Q-classes of dimension 18
 "C2 wr S18 = W(B18)",
 "(C2 x Sp(4,4)).C2",
 "(C2 x W(E6)) wr S3",
 "(C2 x 3^(1+4):Sp(4,3)).C2",
 "(C2 x S3) wr S9 = (C2 x W(A2)) wr S9",
 "(C2 x S5) wr S3",
 "(C2 x S10) wr C2 = (C2 x W(A9)) wr C2",
 "(C2 x A5 x A5).(C2 x C2)",
 "(C2 x C3.A6).(C2 x C2)",
 "C2 x S3 x S10 = C2 x W(A2) x W(A9)",
 "(C2 x S7) wr S3 = (C2 x W(A6)) wr S3",
 "(C2 x PGL(2,7)) wr S3",
 "(C2 x PSL(2,7) x PSL(2,7)).(C2 x C2)",
 "C2 x PGL(2,17)",
 "C2 x PSL(2,17)",
 "C2 x S19 = C2 x W(A18)",
 "C2 x PGL(2,19)"];

IMFList[19].isomorphismType := [ # Z-classes of dimension 19
 "C2 wr S19",
 "C2 wr S19",
 "C2 wr S19",
 "C2 x S20",
 "C2 x S20",
 "C2 x S20",
 "C2 x S20",
 "C2 x S20",
 "C2 x S20"];

IMFList[20].isomorphismType := [ # Q-classes of dimension 20
 "C2 wr S20",
 "W(F4) wr S5",
 "(SU(5,2) x SL(2,3)).C2",
 "C2.M12.C2",
 "(D8 x S6).C2",
 "(C2 x S3) wr S10 = (C2 x W(A2)) wr S10",
 "((SU(4,2) x C6):C2) wr C2",
 "(C2 x S6) wr S4 = (C2 x W(A5)) wr S4",
 "W(F4) x S6 = W(F4) x W(A5)",
 "(C2 x SU(4,2)).C2",
 "(C2 x S6) wr C2",
 "(SU(4,2) x C6).C2",
 "(C2 x S5) wr S5 = (C2 x W(A4)) wr S5",
 "C2 x 5^(1+2):GL(2,5)",
 "C2 x S5 x S6 = C2 x W(A4) x W(A5)",
 "(C2.PSL(3,4)).(C2 x C2)",
 "C2.M22.C2",
 "C2 x S7",
 "C2 x S21 = C2 x W(A20)",
 "(C2 x PSL(3,4)).(C2 x S3)",
 "C2 x S8",
 "(C2 x S11) wr C2 = (C2 x W(A10)) wr C2",
 "(PSL(2,11) x D12).C2",
 "(C2 x PGL(2,11)) wr C2",
 "(C2 x PGL(2,11)) wr C2",
 "(PSL(2,11) x D12).C2",
 "(SL(2,11) Y SL(2,3)).C2",
 "C2 x S3 x S11 = C2 x W(A2) x W(A10)",
 "C2 x S3 x PGL(2,11)",
 "C2 x S3 x PGL(2,11)",
 "C2 x PGL(2,19)"];

IMFList[21].isomorphismType := [ # Q-classes of dimension 21
 "C2 wr S21",
 "W(E7) wr S3",
 "W(E7)",
 "(C2 x PSU(4,3)).D8",
 "C2 x Sp(6,2)",
 "(C2 x PSU(3,5)).S3",
 "C2 x S7",
 "C2 x S22 = C2 x W(A21)"];

IMFList[22].isomorphismType := [ # Q-classes of dimension 22
 "C2 wr S22 = W(B22)",
 "(C2 x PSU(6,2)).S3",
 "(C2 x S3) wr S11 = (C2 x W(A2)) wr S11",
 "(C2 x S12) wr C2 = (C2 x W(A11)) wr C2",
 "C2 x S3 x S12 = C2 x W(A2) x W(A11)",
 "(C2 x HS).C2",
 "(C2 x Mc).C2",
 "C2 x S23 = C2 x W(A22)",
 "C2 x PSL(2,23)",
 "C2 x PSL(2,23)",
 "C2 x PGL(2,23)",
 "C2 x PGL(2,23)"];

IMFList[23].isomorphismType := [ # Z-classes of dimension 23
 "C2 x S24",
 "C2 x S24",
 "C2 x S24",
 "C2 x S24",
 "C2 x S24",
 "C2 x S24",
 "C2 x S24",
 "C2 x S24",
 "C2 wr S23",
 "C2 wr S23",
 "C2 wr S23",
 "C2 wr M23",
 "C2 wr M23",
 "C2^12:M23",
 "C2^12:M23",
 "C2 x M24",
 "C2 x M24",
 "C2 x M24",
 "C2 x M24",
 "C2 x M24",
 "C2 x M24",
 "C2 x Co2",
 "C2 x Co2",
 "C2 x Co2",
 "C2 x Co3",
 "C2 x Co3",
 "C2 x Co3",
 "C2 x Co3"];

IMFList[24].isomorphismType := [ # Q-classes of dimension 24
 "C2 wr S24 = W(B24)",
 "W(E8) wr S3",
 "C2.Co1",
 "(((SL(2,5) Y SL(2,5)):C2) x A5).C2",
 "W(F4) wr S6",
 "(C6 x PSU(4,3).C2 Y SL(2,3)).C2",
 "(C2 x W(E6)) wr S4",
 "((C2 x C3.A6).C2 Y SL(2,3)).C2",
 "(Sp(4,3) x 3^(1+2):SL(2,3)).C2",
 "(C2 x S3) wr S12 = (C2 x W(A2)) wr S12",
 "(C6.PSU(4,3).(C2 x C2)) wr C2",
 "W(F4) x W(E6)",
 "((3^(1+2):SL(2,3) x SL(2,3)).C2) wr C2",
 "(C3.S6 x D8).C2",
 "(S3 x W(F4)) wr S3",
 "(C6.PSL(3,4).C2 Y D8).C2",
 "((SL(2,3) Y C4).C2 x PSU(3,3)).C2",
 "C2 x S25 = C2 x W(A24)",
 "(C2 x S5) wr S6 = (C2 x W(A4)) wr S6",
 "(C2 x S5) wr S4",
 "((SL(2,5) Y SL(2,5)):(C2 x C2)) wr S3",
 "(C2.J2 Y SL(2,5)):C2",
 "((C2 x D10 x A5).C2) wr C2",
 "((SL(2,5) Y SL(2,3)).C2) wr C2",
 "(SL(2,5) Y (D8 Y Q8).A5).C2",
 "(((SL(2,5) Y SL(2,5)):C2) x A5):C2",
 "W(F4) x S5",
 "(SL(2,5) Y (C2 x 3^(1+2)).GL(2,3)).C2",
 "(C2 x S3 x S5) wr C2",
 "((C2 x C3.A6).(C2 x C2)) wr C2",
 "S3 x (SL(2,5) Y SL(2,3)).C2",
 "(C2 x S7) wr S4 = (C2 x W(A6)) wr S4",
 "(PSL(2,7) x W(F4)).C2",
 "(C2 x PGL(2,7)) wr S4",
 "(PSL(2,7) x W(F4)).C2",
 "((PSL(2,7) x D8).C2) wr C2",
 "W(F4) x S7 = W(F4) x W(A6)",
 "((PSL(2,7) x D8).C2) wr C2",
 "W(F4) x PGL(2,7)",
 "(SL(2,13) Y SL(2,3)).C2",
 "(SL(2,7) x PSL(2,7)).C2",
 "C6.A7:C2",
 "(C3.M10 x SL(2,3)).C2",
 "(A5 x ((C3 x D8).C2)).C2",
 "(C3.M10 x D8).C2",
 "(C2 x S3 x S7) wr C2 = (C2 x W(A2) x W(A6)) wr C2",
 "(C2 x S3 x PGL(2,7)) wr C2",
 "S3 x ((PSL(2,7) x D8).C2)",
 "S3 x ((PSL(2,7) x D8).C2)",
 "(C2 x S13) wr C2 = (C2 x W(A12)) wr C2",
 "((C2 x PSL(3,3)).C2 x C3).C2",
 "C2 x S3 x S13 = C2 x W(A2) x W(A12)",
 "(C2 x D78).C12",
 "C2 x S5 x W(E6) = C2 x W(A4) x W(E6)",
 "(C2 x S3 x S5) wr S3 = ((C2 x W(A2)) x W(A4)) wr S3",
 "(C2 x C3.PGL(2,9) x D10).C2",
 "S3 x (C2 x D10 x A5).C2",
 "(C2 x PSU(4,2)).C2",
 "SL(2,7) Y (C2.S4)",
 "(SL(2,7) Y Q16).C2",
 "(C2 x PGL(2,7)) wr S3",
 "C2 x S5 x S7 = C2 x W(A4) x W(A6)",
 "C2 x S5 x PGL(2,7)",
 "(SL(2,11) Y SL(2,3)).C2",
 "C2 x PSL(2,11):C2"];


#############################################################################
##
##  Norms  of  the  short  vectors  for  the  class  representatives  of  the
##  irreducible maximal finite integral matrix groups.
##

IMFList[1].minimalNorm := [ # Z-classes of dimension 1
 1];

IMFList[2].minimalNorm := [ # Z-classes of dimension 2
 1,2];

IMFList[3].minimalNorm := [ # Z-classes of dimension 3
 1,3,2];

IMFList[4].minimalNorm := [ # Z-classes of dimension 4
 1,2,2,4,2,4];

IMFList[5].minimalNorm := [ # Z-classes of dimension 5
 1,2,4,5,2,4,3];

IMFList[6].minimalNorm := [ # Z-classes of dimension 6
 1,2,2,2,3,3,2,2,4,4,6,6,2,4,3,4,5];

IMFList[7].minimalNorm := [ # Z-classes of dimension 7
 1,2,4,7,2,2,3];

IMFList[8].minimalNorm := [ # Z-classes of dimension 8
 1,2,2,2,2,4,2,4,6,4,2,8,8,2,4,4,8,8,4,4,3,6,8,6,4,14];

IMFList[9].minimalNorm := [ # Z-classes of dimension 9
 1,2,4,2,3,2,4,3,4,4,9,6,8,6,9,2,8,4,12,4];

IMFList[10].minimalNorm := [ # Z-classes of dimension 10
 1,2,2,4,4,2,4,3,4,4,5,4,5,2,4,2,5,3,4,5,6,9,4,8,2,4,6,10,4,8,3,4,6,4,10,6,8,
 3,4,4,4,2,10,4,10,6];

IMFList[11].minimalNorm := [ # Z-classes of dimension 11
 1,2,4,11,5,8,6,2,2];

IMFList[12].minimalNorm := [ # Q-classes of dimension 12
 1,2,2,2,4,4,3,2,4,4,6,8,2,4,4,8,4,8,2];

IMFList[13].minimalNorm := [ # Z-classes of dimension 13
 1,2,4,13,2,12,4,3,3,4,4,12,12,5,4,12,6];

IMFList[14].minimalNorm := [ # Q-classes of dimension 14
 1,2,2,4,3,4,2,4,4,7,6,6];

IMFList[15].minimalNorm := [ # Q-classes of dimension 15
 1,2,3,3,2,3];

IMFList[16].minimalNorm := [ # Q-classes of dimension 16
 1,2,2,4,2,4,4,4,6,2,8,4,4,6,4,8,4,8,10,8,12,8,6,8,12,10,4,4,6,2,6];

IMFList[17].minimalNorm := [ # Z-classes of dimension 17
 1,2,4,17,2,16,4,2,4,4,4,16,6,34,4,6,8,3,4,4,7,10,17,8];

IMFList[18].minimalNorm := [ # Q-classes of dimension 18
 1,3,2,4,2,3,2,5,6,4,2,4,6,9,6,2,10];

IMFList[19].minimalNorm := [ # Z-classes of dimension 19
 1,4,2,19,2,2,10,8,9];

IMFList[20].minimalNorm := [ # Q-classes of dimension 20
 1,2,4,4,3,2,4,2,4,4,3,6,2,4,4,5,8,4,2,4,4,2,4,4,6,8,6,4,8,12,8];

IMFList[21].minimalNorm := [ # Q-classes of dimension 21
 1,2,3,3,4,21,6,2];

IMFList[22].minimalNorm := [ # Q-classes of dimension 22
 1,8,2,2,4,3,12,2,4,6,8,12];

IMFList[23].minimalNorm := [ # Z-classes of dimension 23
 23,2,2,6,4,6,16,11,1,2,4,4,2,16,4,23,4,8,3,8,12,3,4,12,5,4,10,15];

IMFList[24].minimalNorm := [ # Q-classes of dimension 24
 1,2,4,4,2,4,2,4,4,2,4,4,4,4,4,8,8,2,2,3,4,8,4,4,6,8,6,8,6,8,8,2,4,4,8,4,4,8,
 8,12,4,4,8,10,16,4,8,8,16,2,4,4,6,4,4,8,8,6,4,4,4,4,8,12,6];


#############################################################################
##
##  Degrees, i.e. orbit sizes of short vectors, for the class representatives
##  of the irreducible maximal finite integral matrix groups.
##

IMFList[1].degrees := [ # Z-classes of dimension 1
 2];

IMFList[2].degrees := [ # Z-classes of dimension 2
 4,
 6];

IMFList[3].degrees := [ # Z-classes of dimension 3
 6,
 8,
 12];

IMFList[4].degrees := [ # Z-classes of dimension 4
 8,
 24,
 12,
 18,
 20,
 10];

IMFList[5].degrees := [ # Z-classes of dimension 5
 10,
 40,
 10,
 12,
 30,
 30,
 20];

IMFList[6].degrees := [ # Z-classes of dimension 6
 12,
 60,
 12,
 24,
 16,
 32,
 18,
 72,
 54,
 36,
 24,
 14,
 42,
 42,
 20,
 30,
 24];

IMFList[7].degrees := [ # Z-classes of dimension 7
 14,
 84,
 14,
 16,
 56,
 126,
 56];

IMFList[8].degrees := [ # Z-classes of dimension 8
 16,
 112,
 16,
 48,
 240,
 72,
 24,
 108,
 24,
 36,
 72,
 18,
 54,
 40,
 20,
 120,
 50,
 30,
 60,
 24,
 32,
 96,
 42,
 56,
 84,
 48];

IMFList[9].degrees := [ # Z-classes of dimension 9
 18,
 144,
 18,
 36,
 24,
 36,
 18,
 48,
 [18,144],
 72,
 32,
 96,
 36,
 48,
 20,
 90,
 90,
 90,
 30,
 90];

IMFList[10].degrees := [ # Z-classes of dimension 10
 20,
 180,
 20,
 180,
 [20,240],
 80,
 20,
 80,
 [20,80],
 40,
 64,
 120,
 32,
 60,
 60,
 60,
 24,
 40,
 60,
 72,
 60,
 40,
 60,
 60,
 30,
 180,
 30,
 162,
 120,
 30,
 80,
 270,
 240,
 90,
 36,
 60,
 90,
 40,
 30,
 90,
 30,
 110,
 22,
 [110,110],
 132,
 110];

IMFList[11].degrees := [ # Z-classes of dimension 11
 22,
 220,
 22,
 24,
 132,
 132,
 132,
 132,
 132];

IMFList[12].degrees := [ # Q-classes of dimension 12
 24,
 72,
 144,
 36,
 756,
 216,
 40,
 60,
 [120,300],
 360,
 60,
 270,
 84,
 84,
 [168,168],
 [168,168],
 126,
 126,
 156];

IMFList[13].degrees := [ # Z-classes of dimension 13
 26,
 312,
 26,
 28,
 182,
 182,
 182,
 52,
 104,
 468,
 234,
 52,
 104,
 52,
 [130,650],
 130,
 130];

IMFList[14].degrees := [ # Q-classes of dimension 14
 28,
 252,
 42,
 756,
 112,
 378,
 210,
 210,
 [420,840],
 156,
 182,
 [182,364]];

IMFList[15].degrees := [ # Q-classes of dimension 15
 30,
 240,
 240,
 240,
 90,
 70];

IMFList[16].degrees := [ # Q-classes of dimension 16
 32,
 480,
 96,
 4320,
 48,
 720,
 720,
 144,
 960,
 80,
 600,
 [200,240],
 240,
 2400,
 240,
 1200,
 120,
 360,
 1440,
 180,
 480,
 [120,240],
 336,
 [168,252],
 1680,
 336,
 168,
 [120,120,120,120],
 [120,120,120],
 272,
 [272,816]];

IMFList[17].degrees := [ # Z-classes of dimension 17
 34,
 544,
 34,
 36,
 306,
 306,
 306,
 306,
 306,
 34,
 34,
 34,
 2176,
 36,
 204,
 [816,1224],
 102,
 136,
 [510,816],
 2040,
 816,
 1020,
 240,
 102];

IMFList[18].degrees := [ # Q-classes of dimension 18
 36,
 240,
 216,
 6480,
 54,
 60,
 180,
 72,
 180,
 270,
 126,
 126,
 336,
 272,
 204,
 342,
 342];

IMFList[19].degrees := [ # Z-classes of dimension 19
 38,
 38,
 684,
 40,
 380,
 380,
 380,
 380,
 380];

IMFList[20].degrees := [ # Q-classes of dimension 20
 40,
 120,
 3960,
 3960,
 80,
 60,
 540,
 120,
 360,
 540,
 80,
 1440,
 100,
 [300,6000,6000],
 300,
 112,
 [1540,4620],
 70,
 420,
 [840,6720,7560],
 420,
 220,
 [660,660,660,1980,1980,2640,3960],
 [220,220],
 220,
 660,
 1320,
 330,
 [330,330],
 330,
 [570,1710]];

IMFList[21].degrees := [ # Q-classes of dimension 21
 42,
 378,
 672,
 1680,
 630,
 300,
 [210,210],
 462];

IMFList[22].degrees := [ # Q-classes of dimension 22
 44,
 1782,
 66,
 264,
 396,
 2200,
 550,
 506,
 [506,506,506],
 [506,506,1012,2024],
 [506,1518,2024],
 506];

IMFList[23].degrees := [ # Z-classes of dimension 23
 48,
 552,
 552,
 552,
 552,
 552,
 552,
 552,
 46,
 1012,
 46,
 46,
 46,
 46,
 [1012,64768],
 48,
 [552,53130],
 1518,
 2576,
 1518,
 2576,
 4600,
 93150,
 4600,
 552,
 75900,
 22356,
 552];

IMFList[24].degrees := [ # Q-classes of dimension 24
 48,
 720,
 196560,
 [3600,8640],
 144,
 3024,
 288,
 [2160,6480,12960],
 2160,
 72,
 1512,
 864,
 432,
 144,
 216,
 [3024,7560],
 [4536,6048],
 600,
 120,
 80,
 360,
 37800,
 [240,600],
 720,
 2400,
 1800,
 240,
 1080,
 120,
 540,
 1080,
 168,
 [1008,3024],
 168,
 [1008,3024],
 [336,336],
 504,
 [336,336],
 504,
 [2184,2184,8736],
 [2352,8064,14112],
 3024,
 1080,
 144,
 [1080,1080],
 252,
 252,
 [504,504],
 [504,504],
 312,
 [936,5616,8424],
 468,
 [624,936],
 720,
 180,
 [1080,2160,2700],
 [360,900],
 [240,1440],
 [1008,1008,2016],
 336,
 252,
 420,
 420,
 1320,
 [220,220,660]];


#############################################################################
##
##  Orbit representatives of short vectors  for the  class representatives of
##  the irreducible maximal finite integral matrix groups.
##

 I_ := IdentityMat( 1 );
IMFList[1].orbitReps := [ # Z-classes of dimension 1
 I_[1]];

 I_ := IdentityMat( 2 );
IMFList[2].orbitReps := [ # Z-classes of dimension 2
 I_[1],
 I_[1]];

 I_ := IdentityMat( 3 );
IMFList[3].orbitReps := [ # Z-classes of dimension 3
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 4 );
IMFList[4].orbitReps := [ # Z-classes of dimension 4
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 5 );
IMFList[5].orbitReps := [ # Z-classes of dimension 5
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 6 );
IMFList[6].orbitReps := [ # Z-classes of dimension 6
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 7 );
IMFList[7].orbitReps := [ # Z-classes of dimension 7
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 8 );
IMFList[8].orbitReps := [ # Z-classes of dimension 8
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 9 );
IMFList[9].orbitReps := [ # Z-classes of dimension 9
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[7]-I_[8]+I_[9],I_[1]],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 10 );
IMFList[10].orbitReps := [ # Z-classes of dimension 10
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[2]],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[2]],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[2]],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 11 );
IMFList[11].orbitReps := [ # Z-classes of dimension 11
 I_[1],
 I_[1],
 I_[1]+I_[2],
 I_[1],
 I_[1],
 I_[1]-I_[2],
 I_[1]-I_[2],
 I_[1]-I_[2],
 I_[1]];

 I_ := IdentityMat( 12 );
IMFList[12].orbitReps := [ # Q-classes of dimension 12
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[4],I_[1]],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[7]],
 [I_[1],I_[6]],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 13 );
IMFList[13].orbitReps := [ # Z-classes of dimension 13
 I_[1],
 I_[1],
 I_[1]+I_[2],
 I_[1],
 I_[1],
 I_[1],
 I_[1]-I_[2],
 I_[1]-I_[3]+I_[6],
 I_[1],
 I_[1],
 I_[1],
 I_[1]+I_[2]+I_[3]-I_[6],
 I_[1]+I_[3],
 I_[1],
 [I_[1]+I_[2],I_[1]],
 I_[1]+I_[2],
 I_[1]];

 I_ := IdentityMat( 14 );
IMFList[14].orbitReps := [ # Q-classes of dimension 14
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[6]],
 I_[1],
 I_[1],
 [I_[2],I_[1]]];

 I_ := IdentityMat( 15 );
IMFList[15].orbitReps := [ # Q-classes of dimension 15
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 16 );
IMFList[16].orbitReps := [ # Q-classes of dimension 16
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[7]],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[4],I_[1]],
 I_[1],
 [I_[9],I_[1]],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[2],I_[4],I_[5]],
 [I_[1],I_[3],I_[7]],
 I_[1],
 [I_[3],I_[1]]];

 I_ := IdentityMat( 17 );
IMFList[17].orbitReps := [ # Z-classes of dimension 17
 I_[1],
 I_[1],
 I_[1]+I_[2],
 I_[1],
 I_[1],
 I_[1],
 I_[1]-I_[2],
 I_[1]-I_[2],
 I_[1]-I_[2],
 I_[1]-I_[2]-I_[3]+I_[4]+I_[7]+I_[15],
 I_[1]-I_[2]-I_[5]+I_[6]-I_[12],
 I_[1]+I_[3]-I_[4]+I_[5]+I_[7]-I_[8]+I_[9]+I_[11],
 I_[1]-I_[3],
 I_[1]-I_[3]+I_[6]-I_[9]+I_[11],
 I_[1],
 [I_[1]-I_[9],I_[1]],
 I_[1]+I_[6],
 I_[1],
 [I_[1],I_[1]-I_[5]],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 18 );
IMFList[18].orbitReps := [ # Q-classes of dimension 18
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 19 );
IMFList[19].orbitReps := [ # Z-classes of dimension 19
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1]];

 I_ := IdentityMat( 20 );
IMFList[20].orbitReps := [ # Q-classes of dimension 20
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[6]-I_[7],I_[1],I_[2]],
 I_[1],
 I_[1],
 [I_[1],I_[2]],
 I_[1],
 I_[1],
 [I_[20],I_[5],I_[1]],
 I_[1],
 I_[1],
 [I_[1],I_[8],I_[10],I_[12],I_[13],I_[3],I_[2]],
 [I_[1],I_[2]],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[3]],
 I_[1],
 [I_[5],I_[1]]];

 I_ := IdentityMat( 21 );
IMFList[21].orbitReps := [ # Q-classes of dimension 21
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[1]+I_[15]+I_[20]],
 I_[1]];

 I_ := IdentityMat( 22 );
IMFList[22].orbitReps := [ # Q-classes of dimension 22
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[2],I_[3]],
 [I_[1],I_[16],I_[3],I_[4]],
 [I_[4],I_[1],I_[2]],
 I_[1]];

 I_ := IdentityMat( 23 );
IMFList[23].orbitReps := [ # Z-classes of dimension 23
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[2],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[12],
 [I_[12],I_[1]],
 I_[1],
 [I_[10],I_[1]],
 I_[14],
 I_[11],
 I_[6],
 I_[12],
 I_[1],
 I_[2],
 I_[2],
 I_[7],
 I_[1],
 I_[6],
 I_[18]];

 I_ := IdentityMat( 24 );
IMFList[24].orbitReps := [ # Q-classes of dimension 24
 I_[1],
 I_[1],
 I_[1],
 [I_[2],I_[1]],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[18],I_[13]],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[2]],
 [I_[2],I_[1]],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[4],I_[1]],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[10],I_[1]],
 I_[1],
 [I_[7],I_[1]],
 [I_[1],I_[7]],
 I_[1],
 [I_[1],I_[6]],
 I_[1],
 [I_[5],I_[9],I_[1]],
 [I_[1],I_[11],I_[6]],
 I_[1],
 I_[1],
 I_[1],
 [I_[1],I_[4]],
 I_[1],
 I_[1],
 [I_[1],I_[7]],
 [I_[1],I_[6]],
 I_[1],
 [I_[3],I_[10],I_[1]],
 I_[1],
 [I_[11],I_[1]],
 I_[1],
 I_[1],
 [I_[4]-I_[23]-I_[24],I_[1],I_[2]],
 [I_[4],I_[1]],
 [I_[10],I_[1]],
 [I_[1],I_[14],I_[2]],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 I_[1],
 [I_[2],I_[3],I_[1]]];

Unbind( I_ );

